using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Notification")]
	public class Notification : MonoBehaviour
	{
		public enum SpeechBubbleDirection
		{
			None,
			TopLeft,
			TopRight,
			BottomLeft,
			BottomRight
		}

		public enum PopUpArrowDirection
		{
			Left,
			Right,
			Down,
			Up,
			LeftDown,
			RightDown,
			RightUp,
			LeftUp
		}

		public UberText speechUberText => method_3<UberText>("speechUberText");

		public UberText headlineUberText => method_3<UberText>("headlineUberText");

		public GameObject upperLeftBubble => method_3<GameObject>("upperLeftBubble");

		public GameObject bottomLeftBubble => method_3<GameObject>("bottomLeftBubble");

		public GameObject upperRightBubble => method_3<GameObject>("upperRightBubble");

		public GameObject bottomRightBubble => method_3<GameObject>("bottomRightBubble");

		public GameObject bounceObject => method_3<GameObject>("bounceObject");

		public GameObject fadeArrowObject => method_3<GameObject>("fadeArrowObject");

		public GameObject leftPopupArrow => method_3<GameObject>("leftPopupArrow");

		public GameObject rightPopupArrow => method_3<GameObject>("rightPopupArrow");

		public GameObject bottomPopupArrow => method_3<GameObject>("bottomPopupArrow");

		public GameObject topPopupArrow => method_3<GameObject>("topPopupArrow");

		public GameObject bottomLeftPopupArrow => method_3<GameObject>("bottomLeftPopupArrow");

		public GameObject bottomRightPopupArrow => method_3<GameObject>("bottomRightPopupArrow");

		public GameObject topRightPopupArrow => method_3<GameObject>("topRightPopupArrow");

		public GameObject topLeftPopupArrow => method_3<GameObject>("topLeftPopupArrow");

		public Spell showEvent => method_3<Spell>("showEvent");

		public Spell destroyEvent => method_3<Spell>("destroyEvent");

		public PegUIElement clickOff => method_3<PegUIElement>("clickOff");

		public bool ignoreAudioOnDestroy => method_2<bool>("ignoreAudioOnDestroy");

		public MeshRenderer artOverlay => method_3<MeshRenderer>("artOverlay");

		public Material swapMaterial => method_3<Material>("swapMaterial");

		public static float BOUNCE_SPEED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Notification", "BOUNCE_SPEED");

		public static float FADE_SPEED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Notification", "FADE_SPEED");

		public static float FADE_PAUSE => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Notification", "FADE_PAUSE");

		public static int MAX_CHARACTERS => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "Notification", "MAX_CHARACTERS");

		public static int MAX_CHARACTERS_IN_DIALOG => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "Notification", "MAX_CHARACTERS_IN_DIALOG");

		public static float DEATH_ANIMATION_DURATION => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Notification", "DEATH_ANIMATION_DURATION");

		public bool isDying => method_2<bool>("isDying");

		public SpeechBubbleDirection m_bubbleDirection => method_2<SpeechBubbleDirection>("m_bubbleDirection");

		public Vector3 m_initialScale => method_2<Vector3>("m_initialScale");

		public GameObject m_parentOffsetObject => method_3<GameObject>("m_parentOffsetObject");

		public Vector3 m_localPosition => method_2<Vector3>("m_localPosition");

		public Vector3 m_hiddenPosition => method_2<Vector3>("m_hiddenPosition");

		public bool m_hiding => method_2<bool>("m_hiding");

		public string PrefabPath => method_13("get_PrefabPath");

		public bool PersistCharacter => method_11<bool>("get_PersistCharacter", Array.Empty<object>());

		public bool ForceNoHiding => method_11<bool>("get_ForceNoHiding", Array.Empty<object>());

		public Notification(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Notification(IntPtr address)
			: this(address, "Notification")
		{
		}

		public static void PlayBirthAnim(GameObject gameObject, Vector3 startingScale, Vector3 targetScale)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "Notification", "PlayBirthAnim", gameObject, startingScale, targetScale);
		}

		public void Start()
		{
			method_8("Start");
		}

		public void LateUpdate()
		{
			method_8("LateUpdate");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void ChangeText(string newText)
		{
			method_8("ChangeText", newText);
		}

		public void ChangeDialogText(string headlineString, string bodyString, string yesOrOKstring, string noString)
		{
			method_8("ChangeDialogText", headlineString, bodyString, yesOrOKstring, noString);
		}

		public void RepositionSpeechBubbleAroundBigQuote(SpeechBubbleDirection direction, bool animateSpeechBubble)
		{
			method_8("RepositionSpeechBubbleAroundBigQuote", direction, animateSpeechBubble);
		}

		public GameObject FaceDirection(SpeechBubbleDirection direction)
		{
			return method_14<GameObject>("FaceDirection", new object[1] { direction });
		}

		public GameObject GetSpeechBubble(SpeechBubbleDirection direction)
		{
			return method_14<GameObject>("GetSpeechBubble", new object[1] { direction });
		}

		public void PlaySpeechBubbleDeath()
		{
			method_8("PlaySpeechBubbleDeath");
		}

		public void OnBubbleDeathComplete(SpeechBubbleDirection direction)
		{
			method_8("OnBubbleDeathComplete", direction);
		}

		public SpeechBubbleDirection GetSpeechBubbleDirection()
		{
			return method_11<SpeechBubbleDirection>("GetSpeechBubbleDirection", Array.Empty<object>());
		}

		public void ShowPopUpArrow(PopUpArrowDirection direction)
		{
			method_8("ShowPopUpArrow", direction);
		}

		public void SetPosition(Actor actor, SpeechBubbleDirection direction)
		{
			method_8("SetPosition", actor, direction);
		}

		public void SetPositionForSmallBubble(Actor actor)
		{
			method_8("SetPositionForSmallBubble", actor);
		}

		public void FinishDeath()
		{
			method_8("FinishDeath");
		}

		public void PlayDeath()
		{
			method_8("PlayDeath");
		}

		public void Shrink(float duration)
		{
			method_8("Shrink", duration);
		}

		public void Unshrink(float duration)
		{
			method_8("Unshrink", duration);
		}

		public bool IsDying()
		{
			return method_11<bool>("IsDying", Array.Empty<object>());
		}

		public void PlayBirth()
		{
			method_8("PlayBirth");
		}

		public void PlayBirthWithForcedScale(Vector3 targetScale)
		{
			method_8("PlayBirthWithForcedScale", targetScale);
		}

		public void PlaySmallBirthForFakeBubble()
		{
			method_8("PlaySmallBirthForFakeBubble");
		}

		public void PulseReminderEveryXSeconds(float seconds)
		{
			method_8("PulseReminderEveryXSeconds", seconds);
		}

		public void BounceUp()
		{
			method_8("BounceUp");
		}

		public void BounceDown()
		{
			method_8("BounceDown");
		}

		public void FadeOut()
		{
			method_8("FadeOut");
		}

		public void FadeComplete()
		{
			method_8("FadeComplete");
		}

		public GameObject GetParentOffsetObject()
		{
			return method_14<GameObject>("GetParentOffsetObject", Array.Empty<object>());
		}

		public void SetParentOffsetObject(GameObject parentOffset)
		{
			method_8("SetParentOffsetObject", parentOffset);
		}
	}
}
